package com.tianlu.store.common;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

@ApiModel(
        value = "实体基类",
        description = "BaseEntity"
)
public class BaseEntity<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @ApiModelProperty("对象ID")
    @Column(
            name = "id"
    )
    @GeneratedValue(
            strategy = GenerationType.IDENTITY
    )
    private Long id;

//    @ApiModelProperty("创建人")
//    private Long createId;
//
//    @ApiModelProperty("修改人")
//    private Long updateId;
//
//    @ApiModelProperty("创建时间")
//    private Date createTime;
//
//    @ApiModelProperty("修改时间")
//    private Date updateTime;
//
//    @ApiModelProperty("删除标识（0-否；1-是）")
//    private Integer deleteFlag;

    @ApiModelProperty("页码")
    @Transient
    @TableField(exist = false)
    private Integer page;

    @ApiModelProperty("记录数")
    @Transient
    @TableField(exist = false)
    private Integer rows;

//    @ApiModelProperty("排序条件")
//    @Transient
//    @TableField(exist = false)
//    private String orderBy;

    public static final Integer DEL_FLAG_NORMAL = 0;
    public static final Integer DEL_FLAG_DELETE = 1;

    public BaseEntity() {
//        this.deleteFlag = DEL_FLAG_NORMAL;
        this.page = 1;
        this.rows = 10;
//        this.orderBy = "";
    }

//    public Integer getDeleteFlag() {
//        return this.deleteFlag;
//    }
//
//    public void setDeleteFlag(Integer deleteFlag) {
//        this.deleteFlag = deleteFlag;
//    }

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

//    public Long getCreateId() {
//        return this.createId;
//    }
//
//    public void setCreateId(Long createId) {
//        this.createId = createId;
//    }
//
//    public Long getUpdateId() {
//        return this.updateId;
//    }
//
//    public void setUpdateId(Long updateId) {
//        this.updateId = updateId;
//    }

    public Integer getPage() {
        return this.page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getRows() {
        return this.rows;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }

//    public String getOrderBy() {
//        return this.orderBy;
//    }
//
//    public void setOrderBy(String orderBy) {
//        this.orderBy = StrUtil.toUnderlineCase(orderBy);
//    }

//    @JsonFormat(
//            pattern = "yyyy-MM-dd HH:mm:ss",
//            timezone = "GMT+8"
//    )
//    public Date getCreateTime() {
//        return this.createTime;
//    }
//
//    public void setCreateTime(Date createTime) {
//        this.createTime = createTime;
//    }

//    @JsonFormat(
//            pattern = "yyyy-MM-dd HH:mm:ss",
//            timezone = "GMT+8"
//    )
//    public Date getUpdateTime() {
//        return this.updateTime;
//    }
//
//    public void setUpdateTime(Date updateTime) {
//        this.updateTime = updateTime;
//    }
}
